$(function () {
    //手机端不连接
    // if ($(window).width() > 768) {
    connection_RFID();
    // }
});
var ws_RFID;
var wsUrl_RFID = 'ws://127.0.0.1:1808';

function connection_RFID() {
    if (is_remote_RFID_print === true) {
        //远程打印
        wsUrl_RFID = 'ws://' + remote_ip_RFID + ':1808';
    }

    if ('WebSocket' in window) {
        ws_RFID = new WebSocket(wsUrl_RFID);
    }
    else if ('MozWebSocket' in window) {
        ws_RFID = new MozWebSocket(wsUrl_RFID);
    } else {
        alert('当前浏览器不支持');
    }


    //注册各类回调
    ws_RFID.onopen = function () {
        console.log('连接打印后台成功');
        //alert('连接打印后台成功');
    }

    ws_RFID.onclose = function () {
        // alert('与打印后台断开连接');
        // console.log(111);
    }
    ws_RFID.onerror = function () {
        ws_RFID.close();
        // alert('数据传输发生错误');
        // layer.msg('打印服务未开启', { time: 4000 });
    }
    ws_RFID.onmessage = function (receiveMsg) {
        let data = receiveMsg.data;
        if (data.split("|")[0] == "B_GetPrinterStatus") {
            var ret = receiveMsg.data.split("|")[1];
            if (ret == 2) {
                document.getElementById("status").value = "2:USB端口开启失败";
                console.log(333);
                return;
            }
            else if (ret == 7) {
                // document.getElementById("status").value = "7:纸张/碳带用完！";
                layer.msg('纸张/碳带用完！');
                return;
            }
            else if (ret == 4) {
                document.getElementById("status").value = "4:内存溢出！";          //4:内存溢出！
                console.log(555);
                return;
            }
            else if (ret == 4) {
                document.getElementById("status").value = "4 碳带用完或安装错误！";                       //碳带用完或安装错误！";
                console.log(666);
                return;
            }
            else if (ret == 3) {
                document.getElementById("status").value = "3:条码格式错误！";           //3:条码格式错误！";
                console.log(777);
                return;
            }
            else if (ret == 1) {
                document.getElementById("status").value = "1:打印命令错误！";                 //1:打印命令错误！
                console.log(888);
                return;
            }
            else if (ret == 6) {
                document.getElementById("status").value = "6:串口通信异常！";                 //6:串口通信异常！
                console.log(999);
                return;
            }
            else if (ret == 50) {
                document.getElementById("status").value = "50:打印机忙碌！";                 //50:打印机忙碌！
                console.log(10);
                return;
            }
            else if (ret == 12) {
                document.getElementById("status").value = "12:打印机暂停！";                 //12:打印机暂停
                console.log(11);
                return;
            }
            else if (ret == 9) {
                document.getElementById("status").value = "9:未取得返回值";                 //9:未取得返回值
                console.log(12);
                return;
            }
            else if (ret == 0) {
                document.getElementById("status").value = "0:等待列印!";                 //0:等待列印!
                console.log(13);
                return;
            }

        }else{
            if (data === "-5004"){
                layer.msg('请先连接打印机USB!');
                return;
            }
        }
    }
}

function getStatus_RFID()//获取打印机状态
{
    ws_RFID.send('OpenPort|255');
    ws_RFID.send('ZM_ErrorReportEx|0|0|0|1|0');
    ws_RFID.send('ClosePort');
}

function print_RFID(tool_name, gqj_ID) {
    getStatus_RFID();
    var data = [{
        client_name: client_name,
        tool_name: tool_name,
        gqj_ID: gqj_ID
    }];
    printCode_RFID(data);
}

/* 批量打印RFID */
function batch_print_RFID() {
    // console.log(ws_RFID.readyState);
    if (ws_RFID.readyState != 1){
        layer.msg('RFID打印服务未开启', { time: 4000 });
        return false;
    }
    var doms = $("tbody tr > td:first-child input:checkbox:checked"),l = doms.length;
    if (l == 0) {
        alert('请先选择一个');
        return;
    }
    var data = [];
    doms.each(function (index) {
        let gqjid = $(this).closest("tr").find("td.gqj_ID").text();
        console.log(gqjid);
        console.log(gqjid.length);
        if(!(gqjid.length == 18 || gqjid.length == 24) || gqjid.indexOf('?') > -1){
            layer.msg('有定义错误的ID码，请检查！');
            return false;
        }
        data[index] = {
            client_name: client_name,
            tool_name: $(this).closest("tr").find("td.tool_name").text(),
            gqj_ID: gqjid
        };
    });
    // console.log(data)
    printCode_RFID(data);
}
/* 按概要信息打印条形码 */
function printByGaiyao_RFID(client_name, batchNum, index, count, obj) {
    var data = [];
    var chars_count;//样品号位数 3 or 4
    var bar_codes = $(obj).closest("tr").find("td.bar_codes").text();
    var tool_name = $(obj).closest("tr").find("td.tool_name").text();

    for (var i = 0; i < count; i++) {
        if (bar_codes.length == 21 || index > 999) {
            //样品号是 4位
            chars_count = 4;
        } else {
            //样品号是 3位
            chars_count = 3;
        }
        // var sub3 = ('000' + (index++)).slice(-3);
        var sub3 = ('0000' + index).slice((-1) * chars_count);
        data[i] = {
            bar_code: batchNum + sub3,
            client_name: client_name,
            tool_name: tool_name
        };
        index++;
    }

    printCode_RFID(data);
}

function printCode_RFID(data) {
    // console.info(ws_RFID);
    ws_RFID.send('OpenPort|255');//打开端口
    ws_RFID.send('ZM_ClearBuffer');//清空
    ws_RFID.send('ZM_SetPrintSpeed|4');//设置速度
    ws_RFID.send('ZM_SetDarkness|10');//设置温度 取值范围：0—20
    ws_RFID.send('ZM_SetDirection|B');		//设置打印方向，T为反向， B为正向
    ws_RFID.send('ZM_SetLabelHeight|168|32');//设置标签高度和间隙
    ws_RFID.send('ZM_SetLabelWidth|584');//设置标签宽度
    ws_RFID.send('ZM_SetRFTagRetryCount|2');//通过 USB 端口设置每个 RFID 标签出错后的重试次数
    // ws_RFID.send('ZM_SetLabelHeight|320|16');//设置标签高度和间隙
    // ws_RFID.send('ZM_SetLabelWidth|480');//设置标签宽度

    for (var i in data) {
        var item = data[i];
        // ws_RFID.send('ZM_DrawRectangle|24|24|4|240|240');//(经测试不打印) 画方框，起始点x坐标，起始点y坐标，线宽，对角点x坐标，对角点y坐标
        var strRFID = item.gqj_ID
        // x, y, Height, Width, FontType, 旋转角度, 字体粗细, 斜体, 加底线, 加删除线, id_name, 字符串内容
        ws_RFID.send('ZM_DrawTextTrueTypeW|160|78|30|0|宋体|1|600|0|0|0|A1|工器具ID：');//打印文字
        ws_RFID.send('ZM_DrawTextTrueTypeW|160|110|30|0|宋体|1|600|0|0|0|A2|' + strRFID);//打印文字
        // 操作方式(0—解锁；1—锁定；2—完全解锁；3—完全锁定；4—销毁密码写入), 操作区域(0—销毁密码区；1—访问密码区；2—EPC；3—TID；4—USER), 字符串(格式为 8位HEX字符)
        ws_RFID.send('ZM_SetRFTagPassWLock|1|2|84263495');//RFID 加锁
        
        if(gqjid.length == 24){
        ws_RFID.send('ZM_RW_RfidFormat|1|0|0|12|1|' + strRFID);//写入RFID, 操作方式（0—预留；1—写 RFID）, 写入格式(0—HEX;1—ASCII), 写入起始块, 写入字节数, 写入区域(0—Reserved；1—EPC；2—TID；3—USER), 字符串
        } 
        if(gqjid.length == 18){
        ws_RFID.send('ZM_RW_RfidFormat|1|0|0|9|1|' + strRFID);//写入RFID
        }
        // ws_RFID.send('ZM_DrawLineXor|50|120|240|3');//画直线  x, y, 水平长度, 垂直高度
        //ws_RFID.send('ZM_DrawBar2D_QR|16|120|8|8|0|2|4|0|8|ZMIN Test');//打印QR二维码
        ws_RFID.send('ZM_DrawBar2D_QR|30|30|800|800|0|5|4|1|8|' + strRFID);//打印QR二维码  x, y, 最大列印宽度, 最大列印高度, 旋转方向-0, 放大倍数, 编码模式, 纠错等级-1, 掩模图形-8, 字符串
        // ws_RFID.send('ZM_DrawBarcode|40|40|0|1|3|10|70|66|123456789');//打印一维条码   x, y, 旋转, 条码类型, 窄单元的宽度, 宽单元的宽度, 条码高度, N-78无文字|B-66有文字, 字符串
        ws_RFID.send('ZM_PrintLabel|1|1');//打印标签

        // sleep(2000);//180813 此处需增加延时,保证打印完当前标签;
    }
    ws_RFID.send('ClosePort');//关闭端口
}
